home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / doc / cpp / README.Debian < prev   
Text File  |  2009-04-26  |  6KB  |  165 lines

  1.         The Debian GNU Compiler Collection Setup
  2.         ========================================
  3.  
  4. Abstract
  5. --------
  6.  
  7. Debian uses a default version of GCC for most packages; however, some
  8. packages require another version.  So, Debian allows several versions
  9. of GCC to coexist on the same system, and selects the default version
  10. by means of the gcc-defaults package, which creates symbolic links as
  11. appropriate.
  12.  
  13. Versions of GCC present in Debian Squeeze
  14. -----------------------------------------
  15.  
  16. - GCC 4.3 is the default compiler for C, C++, Objective-C, Objective-C++,
  17.   Ada, Fortran 95, and Java on all architectures. This package also
  18.   provides libgcc1, libgcc2 (m68k) and libgcc4 (hppa) which contain the
  19.   GCC intrinsics, and  libstdc++6.
  20.  
  21. - GCC 4.1 is the default compiler for D and Pascal.
  22.  
  23. - GCC 3.4 is provided for the C, but is not the default for any language.
  24.  
  25. - GCC 3.3 is not provided anymore; it is used to build libstdc++5 on
  26.   the amd64 and i386 architectures. It is expected that libstdc++5 is
  27.   not available anymore for the release following Lenny.
  28.  
  29. - GCC 2.95 and GCC 2.7.2.3 were removed for the release of Lenny.
  30.  
  31. How are the default compilers selected?
  32. ---------------------------------------
  33.  
  34. Starting in Debian 3.0, there is now a gcc-defaults package set. This
  35. creates the actual packages for gcc, gnat, g++, gobjc, chill, gcj, gij,
  36. gdc and gpc.  These packages will depend on the corresponding default
  37. compiler for that architecture. For Debian 4.0 for example, "gcc"
  38. depends on "gcc-4.1", which means that the "gcc-4.1" package will
  39. install a binary called "gcc-4.1", which is symlinked to in the "gcc"
  40. package as "gcc".
  41.  
  42. This may seem confusing, but what it allows you do to is install more
  43. than one version of the GCC compiler collection at the same time,
  44. making sure you are always using the one preferred for that
  45. architecture. To use the other compiler, simply set CC=gcc-4.1, or
  46. similar.
  47.  
  48. The default compiler versions for Debian GNU/Linux on i386 are
  49. (minor version numbers omitted):
  50.  
  51.     cpp        : cpp-4.4
  52.     gcc        : gcc-4.4
  53.     g++        : g++-4.4
  54.     gfortran    : gfortran-4.4
  55.     gcj        : gcj-4.4
  56.     gij        : gij-4.4
  57.     gobjc        : gobjc-4.4
  58.     gobjc++        : gobjc++-4.4
  59.     gnat        : gnat-4.3
  60.     gpc        : gpc-4.1
  61.     gdc        : gdc-4.2
  62.  
  63. Documentation for the default compilers can be found in
  64.  
  65.     /usr/share/doc/<compiler>-<package version>.
  66.  
  67. Thanks to gcc-defaults, each architecture can choose its own preferred
  68. compiler for each language, and that preference can change without
  69. requiring a complete rebuild of both compiler packages for all
  70. architectures.
  71.  
  72. Practical implications
  73. ----------------------
  74.  
  75. The most important practical implications are in the merging/linking
  76. of object files built with different compilers; If you use the 4.1
  77. C compiler, you should use the gcc-4.1 compiler driver for all your
  78. work.  When configuring sources, use
  79.  
  80.     CC=gcc-4.1 ./configure <configure options>     # bash
  81.     setenv CC gcc-4.1; ./configure <options>    # csh
  82.  
  83. When calling make, use make CC=gcc-4.1.
  84.  
  85. C Application Binary Interface
  86. ------------------------------
  87.  
  88. Starting with Debian 4.0 (lenny), gcc-4.1 and newer compilers do
  89. support the long double datatype with 128bit on the alpha, powerpc,
  90. s390 and sparc architectures.  Libraries and applications using this
  91. datatype have to be rebuilt using the compiler versions in Lenny
  92. unless these depend on libc6/libc6.1 and libstdc++6, which still have
  93. compatibilty with a 64bit long double datatype.
  94.  
  95. gcc/g++/... are not handled using alternatives
  96. ----------------------------------------------
  97.  
  98. The symlinks in /usr/bin (gcc, g++, ...) are not handled using the Debian
  99. alternative mechanism. There are differences in the architecture specific
  100. ABI on some architectures and the C++ ABI differs as well. Having the
  101. symlinks managed by alternatives doesn't allow reliable builds with the
  102. same major/minor version of the compiler. To use another compiler version,
  103. set the appropriate environment variables as described above in the section
  104. "Practical implications".
  105.  
  106. C++ libraries
  107. -------------
  108.  
  109. To use the libstdc++ library for debugging (found in the
  110. libstd++6-<GCC version>-dbg package), add /usr/lib/debug to your
  111. LD_LIBRARY_PATH. For gdb to display the source you need to get the
  112. correspondig gcc-X.Y source package, unpack the source and point gdb
  113. to the location of the source (dir directive).
  114.  
  115. C++ Application Binary Interface
  116. --------------------------------
  117.  
  118. Sometimes, the C++ ABI of GCC changes.  It is impossible to link
  119. object files that obey different ABIs into an executable.  When the
  120. ABI changes, Debian provides a new version of libstdc++ with a new
  121. soname.
  122.  
  123. Version 4 of the ABI was used by GCC 3.0 and 3.1; it is no longer
  124. supported.
  125.  
  126. Version 5 of the ABI is common to GCC 3.2 and 3.3; GCC 3.3
  127. provides libstdc++5. It is only supported as a runtime library.
  128.  
  129. Version 6 of the ABI is common to GCC 3.4 and later; GCC 4.3 provides
  130. libstdc++6.
  131.  
  132. Bugs
  133. ----
  134.  
  135. Before submitting a bug, please read README.Bugs in this directory.
  136.  
  137. Feedback appreciated
  138. --------------------
  139.  
  140. Feedback about this document is appreciated; preferably as a Severity:
  141. wishlist bug against Package: gcc . For general discussions and
  142. questions, subscribe and/or email the debian-gcc@lists.debian.org mailing
  143. list.
  144.  
  145. Maintainers of these packages
  146. -----------------------------
  147.  
  148. Matthias Klose <doko@debian.org>
  149. Ray Dassen <jdassen@debian.org>
  150. Philip Blundell <pb@debian.org>            (arm-linux)
  151. Jeff Bailey <jbailey@nisa.net>            (hurd-i386)
  152. Joel Baker <fenton@debian.org>            (netbsd-i386)
  153. Ben Collins <bcollins@debian.org>        (sparc-linux)
  154. Falk Hueffner <falk@debian.org>            (alpha-linux)
  155. Randolph Chung <tausq@debian.org>        (ia64-linux, hppa-linux)
  156. Thiemo Seufer <ths@networkno.de>        (mips*-linux)
  157. Dan Jacobowitz <dan@debian.org>            (powerpc-linux)
  158. Gerhard Tonn <GerhardTonn@swol.de>        (s390-linux)
  159. Roman Zippel <zippel@linux-m68k.org>        (m68k-linux)
  160. Ludovic Brenta <ludovic.brenta@insalien.org>    (gnat)
  161. Arthur Loiret <arthur.loiret@gmail.com>        (gdc)
  162.  
  163. ===============================================================================
  164.  
  165.